package com.wing.wcabinet.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wing.cabinet.model.entity.CheckedInventoryInout;
import com.wing.cabinet.model.request.CheckedInventoryInoutDetailForm;
import com.wing.cabinet.model.request.StorageInventoryInoutDetailForm;
import com.wing.wcabinet.model.entity.WcabCheckedInventoryInout;
import com.wing.wcabinet.model.entity.WcabCheckedInventoryInoutDetail;
import com.wing.wcabinet.model.request.WcabCellInventoryInoutDetailForm;
import com.wing.wcabinet.model.request.WcabCheckedInventoryInoutDetailForm;
import com.wing.wcabinet.model.response.WcabCheckedInventoryInoutDetailVO;

import java.util.List;
import java.util.Map;

/**
 * 暂存柜存刀/取刀;存/取维修/回收刀盘验明细-Service
 *
 * @author
 */
public interface WcabCheckedInventoryInoutDetailService extends IService<WcabCheckedInventoryInoutDetail> {

    /**
     * 添加
     *
     * @param wcabCheckedInventoryInoutDetailForm
     * @return
     */
    int add(WcabCheckedInventoryInoutDetailForm wcabCheckedInventoryInoutDetailForm);

    /**
     * 列表-app
     *
     * @param params
     *
     * @return
     */
    List<WcabCheckedInventoryInoutDetailVO> list4app(Map<String, Object> params);

    /**
     * 分页list-app
     *
     * @param page
     * @param params
     *
     * @return
     */
    Page<WcabCheckedInventoryInoutDetailVO> pageList4app(Page page, Map<String, Object> params);

    /**
     * 详情-app
     *
     * @param id
     *
     * @return
     */
    WcabCheckedInventoryInoutDetailVO get4appById(Long id);

    WcabCheckedInventoryInout inventoryIn(List<WcabCellInventoryInoutDetailForm> list, Long storageInoutId, WcabCheckedInventoryInout.BusinessType businessType, WcabCheckedInventoryInout.BusinessTypePre businessTypePre);

    void inventoryOut(List<WcabCheckedInventoryInoutDetailForm> list, WcabCheckedInventoryInout.BusinessType businessType);
}
